Navigation control for network clients

ABSTRACT

Methods and apparatus for controlling navigation behavior in a computer network include an object creation node, an object navigation node, and an object server node. The object creation node may define objects in images that are associated with network resources. The object server node stores the objects and associated network resources. When an image containing an object is retrieved by an object navigation node, the object server node sends a definition of the object and a network resource identifier to the object navigation node. The object navigation node can access the network resource using the received network resource identifier when interacting with the object.

BACKGROUND

Field

Certain aspects of the present disclosure generally relate to clientnavigation behavior in a computer network, and more particularly, tomethods and apparatus for image based control of navigation of a secondclient computer through a first client computer.

Background

Web browsers navigate across different network resources of the Internetby loading an initial web page into the browser that contains links toother web pages. Interacting with a link retrieves the linked web page,from which additional links become available.

Links are made part of a web page by the authors of the web pages, andthat syntax is hosted on web servers operated by the owners andoperators of the web sites with which the web pages are associated.Tools exist for Internet users that are not web programmers to createand modify web page content for viewing by others (e.g. posting imagesor other information on a user's Facebook or LinkedIn web page),however, there is currently no facility available for Internet users toinsert links into web pages authored by others.

SUMMARY

Various implementations of systems, methods and devices within the scopeof the appended claims each have several aspects, no single one of whichis solely responsible for the desirable attributes described herein.Without limiting the scope of the appended claims, some prominentfeatures are described herein.

Details of one or more implementations of the subject matter describedin this specification are set forth in the accompanying drawings and thedescription below. Other features, aspects, and advantages will becomeapparent from the description, the drawings, and the claims. Note thatthe relative dimensions of the following figures may not be drawn toscale.

One aspect of the disclosure provides an apparatus comprising a serverin communication over a network with at least a first and a secondclient, the server being configured for providing the first client withcontrol over at least some aspects of network resource navigationbehavior of the second client. The server comprises a database havingstored therein data identifying at least a first image, data defining aregion of the first image, wherein the region of the first image isselected at the first client and is received by the server from thefirst client, and a network resource identifier stored in associationwith the data defining the region of the first image. The server alsocomprises a navigation controller configured to control the navigationbehavior of the second client using the data defining the region of thefirst image and the associated network resource identifier. When thesecond client accesses the first image from a node of the computernetwork, the navigation controller is configured to send data definingthe region of the first image to the second client, and send the networkresource identifier that is stored in the database in association withthe data defining the region of the first image to the second client.

Another aspect of the disclosure provides a method, in a computernetwork having a first client, a second client, and a server, forexecuting image based navigation behavior at a second client as definedby a first client. The method comprises downloading one or more imagesto the second client from one or more nodes of the computer network,sending, from the second client to the server, data identifying at leasta first image of the one or more images, receiving, from the server,data defining a region of the first image that was previously selectedby the first client, receiving, from the server, a network resourceidentifier, generating a link using the data defining a region of thefirst image that was previously selected by the first client and thenetwork resource identifier, and accessing the network resourceassociated with the network resource identifier by interacting with alink identifier associated with the link.

Another aspect of the disclosure provides a method, in a computernetwork having a first client, a second client, and a server, fordefining image based navigation behavior for a second client at a firstclient. The method comprises downloading one or more images to the firstclient from one or more nodes of the computer network, selecting a firstimage from the one or more downloaded images, selecting a region of thefirst image, selecting a network resource; and sending, from the firstclient to the server, data defining the selected region of the firstimage and data defining the selected network resource.

Another aspect of the disclosure provides a system for controllingnavigation in a computer network. The system comprises an objectcreation node configured to generate definitions of image regions, anobject navigation node configured to navigate among a series of webpages, and a server configured to provide control over at least somenavigation behavior of the object navigation node in accordance withimage regions defined by the object creation node. The server isconfigured to send, to the object navigation node, one or moredefinitions of image regions generated by the object creation node, andto also send, to the object navigation node, network resource locatorsthat are associated in the server with the one or more image regionsdefined by the object creation node.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a diagram of an exemplary networked communication system inaccordance with embodiments described herein.

FIG. 1B is a diagram of another exemplary networked communication systemin accordance with embodiments described herein.

FIG. 2 is an exemplary screen display of a website containing an image.

FIG. 3 is an exemplary screen display after a user has selected abrowser extension icon which allows a user to define a region within animage.

FIG. 4 is an exemplary screen display after the user has selected adesired image to define one or more regions within.

FIG. 5 is an exemplary screen display of a zoomed-in portion of theimage of FIG. 4.

FIG. 6 is an exemplary screen display after the user has completeddefining the region within the image.

FIG. 7 is an exemplary screen display after the user has selected tocontinue to the next screen from FIG. 6.

FIG. 8 is an exemplary screen display illustrating the search resultsfrom the search entered in FIG. 7.

FIG. 9 is an exemplary screen display of a user selecting an item fromthe list of search results depicted in FIG. 8.

FIG. 10 is an exemplary screen display where the user can confirm thatthe item selected should be associated with the region defined by theuser.

FIG. 11 is an exemplary screen display of a web page that has the imageof FIG. 2 including the region of FIG. 6 within it.

FIG. 12 is an exemplary screen display of the web page depicted in FIG.11 when a link indicator is displayed.

FIG. 13 is an exemplary screen display of a website that the user may bedirected to after the user interacts with the link indicator in FIG. 12.

FIG. 14 is an exemplary flowchart of a method performed by the systemsof FIGS. 1A and 1B.

FIG. 15A is an exemplary flowchart of a method of executing image basednavigation behavior.

FIG. 15B is an exemplary flowchart of a method of retrieving datadefining image regions within an image in response to clientidentification of an image.

FIG. 16A is a flowchart of an exemplary method of interacting with anobject.

FIG. 16B is a flowchart of one portion of the exemplary method ofinteracting with object within an image of a web page shown in FIG. 16A.

FIG. 17A is an exemplary screen display of a web page that contains animage.

FIG. 17B is an exemplary screen display of the web page depicted in FIG.17A when a visual cue of an object is displayed.

FIG. 17C is an exemplary screen display of the web page depicted in FIG.17B when sub-links are displayed.

FIG. 18 is an exemplary screen display of a website that the user may bedirected to after the user interacts with a sub-link in FIG. 17C.

FIG. 19 is a flowchart of an exemplary method of interacting with anobject containing sub-links within an image of a web page.

DETAILED DESCRIPTION

Various aspects of the novel systems, apparatuses, and methods aredescribed more fully hereinafter with reference to the accompanyingdrawings. The teachings disclosure may, however, be embodied in manydifferent forms and should not be construed as limited to any specificstructure or function presented throughout this disclosure. Rather,these aspects are provided so that this disclosure will be thorough andcomplete, and will fully convey the scope of the disclosure to thoseskilled in the art. Based on the teachings herein one skilled in the artshould appreciate that the scope of the disclosure is intended to coverany aspect of the novel systems, apparatuses, and methods disclosedherein, whether implemented independently of or combined with any otheraspect of the invention. For example, an apparatus may be implemented ora method may be practiced using any number of the aspects set forthherein. In addition, the scope of the invention is intended to coversuch an apparatus or method which is practiced using other structure,functionality, or structure and functionality in addition to or otherthan the various aspects of the invention set forth herein. It should beunderstood that any aspect disclosed herein may be embodied by one ormore elements of a claim.

Although particular aspects are described herein, many variations andpermutations of these aspects fall within the scope of the disclosure.Although some benefits and advantages of the preferred aspects arementioned, the scope of the disclosure is not intended to be limited toparticular benefits, uses, or objectives. Rather, aspects of thedisclosure are intended to be broadly applicable to different wirelesstechnologies, system configurations, networks, and transmissionprotocols, some of which are illustrated by way of example in thefigures and in the following description of the preferred aspects. Thedetailed description and drawings are merely illustrative of thedisclosure rather than limiting, the scope of the disclosure beingdefined by the appended claims and equivalents thereof.

Definitions

Browser and Web Page: A browser is a computer program that providesfunctionality to a computer for executing syntax contained in web pages.The computer may be connected to a computer network, and the network maybe, and usually will be, the Internet. As used herein, browsers and webpages together provide functionality to a computer connected to anetwork (e.g. the Internet) at least sufficient to request, retrieve,and display at least some network resources including web pagesthemselves, and to execute at least some links contained within orreferred to in retrieved web pages to retrieve other web pages specifiedwith the links. Browsers may operate together with browser extensions,and in this case, the combination may be referred to herein as abrowser, without specific additional mention of the browser extension.Web pages may include references such as URLs to other network resourcesthat contain images or other data that is retrieved by the browser fromthe network or a cache memory when executing the web page, and may alsoinclude references to programs, libraries, style sheets, scripts, andthe like which are called by the browser when executing the web page.Some of these items may require prior separate loading onto the computer(e.g. Flash and a Java Virtual Machine). Any of these items that areaccessed, used, and/or retrieved during browser execution of web pagesyntax are considered to be included as a component of the “web page” asthat term is used herein. Examples of browsers include Internet Explorerdistributed by Microsoft, and Chrome distributed by Google. Example webpage syntax that can be executed by browsers is the various versions ofHyperText Markup Language (HTML) promulgated by the World Wide WebConsortium (W3C).

Browser Extension: A computer program that adds functionality to abrowser, but is distributed separately from the browser to which it addsthat functionality. Popular browser programs such as Internet Explorerand Chrome provide internal functionality allowing them to interact withbrowser extensions distributed by third parties as long as thethird-party browser extension complies with the interface for browserextensions provided with the browser. The functionality provided by abrowser extension may include modifications to browser execution ofretrieved web pages. Some currently available browser extensions performfunctions such as displaying and executing toolbar functions on top ofretrieved web pages, or blocking browser retrieval of advertisementsthat would otherwise be downloaded in conjunction with web pageexecution.

Server: Processing hardware coupled to a computer network having networkresources stored thereon that is configured with software to respond toclient access requests to use or retrieve the network resources storedon the server.

Internet: The globally interconnected system of computers and computernetworks that evolved from ARPANET and NSFNET over the late 1980s andearly 1990s that may utilize TCP/IP network communication protocols.

Network Resource Identifier: A definition of a network resource (e.g. bystorage location and filename) that is used by client computers tospecify a network resource in access requests issued to the network bythe client computers. A network resource identifier may also be referredto as a location of a network resource such as an image or a web page.Currently, when the network is the Internet, Network resourceidentifiers are known as URLs (an acronym for Uniform Resource Locator)that are formatted in accordance with RFC 3986 of the InternetEngineering Task Force (IETF). For the purposes of this disclosure, anyformat for specifying a network resource in client access requestsissued to a network is within the definition of the term NetworkResource Identifier. A network resource identifier, including URLs ascurrently defined on the Internet, may further include data in additionto data identifying the network resource that a server hosting thenetwork resource associated with the network resource identifier may usefor other purposes beyond identifying the requested network resource.

Web Site: A collection of network resources including at least some webpages that share a common network resource identifier portion, such as aset of web pages with URLs sharing a common domain name but differentpathnames.

Web Server: A server that includes functionality for responding torequests issued by browsers to a network, including, for example,requests to receive network resources such as web pages. Currently,browsers and web servers format their requests and responses thereto inaccordance with the HyperText Transfer Protocol (HTTP) promulgated bythe IETF and W3C.

World Wide Web: The collection of web pages stored by and accessible tocomputers running browsers connected to the Internet that includereferences to each other with links.

Link: Syntax that instructs a browser executing the syntax to access anetwork resource defined directly or indirectly by the syntax. The linksyntax and/or internal browser functionality may also define conditionsunder which the access request is made by the browser, for examplethrough cursor position and/or other interaction with an I/O device suchas a keyboard or mouse. Some link syntax may cause the browser to accessthe specified network resource automatically while processing the syntaxwithout user prompt or interaction. Links include HTML hyperlinks. Alink may be directly coded with, for example, HTML tags and an explicitURL, or may be in the form of a script or other called function definedin a browser, in a browser extension, and/or in a web page.

Link Indicator: A visible indication generated by the browser under thecontrol of link syntax and/or browser functionality indicating thepresence of a link in a web page being executed by the browser.Currently, commonly used examples of visible indications of linksinclude text of specific colors, underlining, and changes in visualappearance of displayed icons. The visible indication may change or bedependent on cursor position or other aspects of the user interactionwith the browser.

Network Resource: A web page, file, document, program, service, or otherform of data or instructions which is stored on a network node and whichis accessible for retrieval and/or other use by other network nodes.

Redirection Response: A response that may be provided by a server whenprocessing an access request of a client for a network resource, wherethe response includes a network resource identifier of a differentnetwork resource that the client should access for the desiredinformation or action. In the HTTP protocol, a redirection response mayalso include a 303 status code, and the client receiving the redirectionresponse may then send a GET or other request for the network resourceidentified by the URL provided in the response.

Navigate: Controlling a browser so as to use a series of links to accessa series of network resources.

Referring now to FIG. 1A, a networked set of computers includes a server125, referred to herein as an “object server node,” that is connected toand part of a wide area network (WAN) 101 which may be the Internet. Theobject server node 125 may comprise general purpose processing hardwareand may be a single computer or may be distributed among multipledifferent computers. The object server node 125 generates and/or storestherein network resource identifiers that are selectively delivered toother network nodes by the object server node 125 as described infurther detail below.

The object server node 125 communicates with nodes 102 coupled to andpart of the network 101 that execute what is referred to herein as“object creation” software 103. These network connected nodes 102 arereferred to herein as “object creation nodes” and may be general purposecomputing devices such as personal desktop computers, laptop computers,smart phones, or any other general or special purpose processinghardware that is configured to communicate over a WAN such as theInternet. Although only one object creation node 102 is shown in FIG. 1,the system may include many object creation nodes 102.

In conjunction with the object server node 125, the object creationsoftware executing on the object creation nodes 102 empowers an operatorof an object creation node 102 to define “objects,” described furtherbelow, that are associated with web pages and/or components thereofretrieved by the object creation node 102 over the network 101, forexample from web servers 104 and/or 108 of FIG. 1A. These definedobjects are associated with network resources available on other nodesof the network such as object destination node 105 of FIG. 1A. Asdescribed further below, with the object server node 125, objects andtheir associated network resources as defined by an operator of anobject creation node 102 can later be forwarded to and used by otherInternet users (such as the object navigation nodes 106 describedfurther below) to direct them to network resources stored on objectdestination node 105 in accordance with the associations between objectsand network resources defined at the object creation node 102.

The object server node 125 may also communicate with other networkconnected nodes 106 that run what is referred to herein as “objectnavigation” software 107, and these network connected nodes 106 arereferred to herein as “object navigation nodes.” In conjunction with theobject server node 125, the object navigation software running on theobject navigation nodes 106 empowers operators of the object navigationnodes 106 to view and interact with objects defined by object creationnodes 102 when the object navigation nodes 106 retrieve the web pages orportions thereof from, for example web servers 104 and/or 108 that havepreviously been associated with objects defined by the object creationnodes 102. Although only one object navigation node 106 is shown in FIG.1A, the system may include many object navigation nodes 106.

As described further below, interaction with these objects at an objectnavigation node 106 allows the object navigation node 106 to use networkresource identifiers such as URLs generated and/or stored by the objectserver node 125 to navigate to the object destination node 105 wherenetwork resources associated with objects are stored.

The object creation software 103 and the object navigation software 107may both be present on a given node of the network, such that at leastsome, and usually most or all network nodes that are object creationnodes 102 are also object navigation nodes 106 and vice versa. Asillustrated in FIG. 1A, the object creation software 103 and/or theobject navigation software 107 may comprise, include, or be a browserextension that operates in conjunction with browsers executing on theobject creation nodes 102 and object navigation nodes 106.

As described in more detail below, the object server node 125 receivesand stores object parameters for objects created by object creationnodes 106, delivers object parameters to the object navigation nodes106, and when object navigation nodes 106 interact with those objects,the object server node 125 delivers the appropriate URLs to the objectnavigation nodes 106 to direct them to access the appropriate networkresource of the object destination node 105.

In some implementations of the system, the objects created by the objectcreation nodes 106 comprise regions of images retrieved by the objectcreation nodes 102, where the region of the image that forms the objectis selected by the operator of the object creation node 102 using theobject creation software 103. Under the control of the object servernode 125, an image region forming an object as defined by an objectcreation node 102 can be converted to a link and link indicator in a webpage that contains the same image when it is accessed by an objectnavigation node 106. This link can be used (directly or indirectly) bythe object navigation node 106 to initiate navigating to the web pagestored on the object destination node 105. Exemplary user interactionwhen performing these functions at the object creation node 102 andobject navigation node 106 are illustrated in FIGS. 2-13.

FIG. 2 is an exemplary screen display of a web page retrieved by theobject creation node 102 that contains several images, although only oneis illustrated in FIG. 2. The retrieved web page could be a Facebookphoto album web page for example, and may be retrieved from web server104 for example by a browser running on the object creation node 102.Typically, when the network is the Internet as currently configured, theHTML code of such a retrieved web page will include URLs specifying thedomain and pathnames of image files that are to be used by the browseras it assembles the display of the web page at the object creation node102. These URLs are accessed by the browser as the web page is executed,and the specified images are retrieved by the browser using the URLs. Itmay be noted that the server where the images are stored may or may notbe the same as the server from which the HTML code for the web page wasretrieved. For example, the HTML code for the web page may be retrievedfrom web server 104, whereas an image to be retrieved when executing theHTML code may be stored on and retrieved from web server 108 when thebrowser assembles the display during web page execution.

Once the display for the web page is assembled by the browser andpresented to the user, a user may access the functionality of the objectcreation software 103, which as described above, may be a browserextension operating as part of the browser on the object creation node102. For example, FIG. 2 illustrates a browser extension icon 205 whichmay be used to initiate execution of object creation functionality whenselected.

FIG. 3 is an exemplary screen display after the user has selected thebrowser extension icon 205. As illustrated in FIG. 3, a pop-up window325 may appear after the user clicks on the browser extension icon 205.The pop-up window 325 may include instructions for the user to defineobjects within an image and image thumbnails 315 a-315 d correspondingto the images retrieved by the browser when executing the web page. Forweb pages including many images, a scroll bar allows scrolling throughthe thumbnails. In this implementation, four fundamental steps areperformed, and the pop-up window 325 may comprise navigation buttons316, 318 for transitioning forward and backward between the steps as theuser completes the steps or desires to go back and re-perform an earlierstep.

The instructions first direct the user to choose a picture and a blackborder is created around a selected thumbnail 315 b when the user, forexample, clicks a mouse button with the cursor over the desiredthumbnail 315 b. The black border indicates that the user has selectedimage 215 to define objects within.

FIG. 4 is an exemplary screen display after the user has selected thedesired image 215 to define objects within. In FIG. 4, the pop-up window325 displays a larger view of the selected image 215 and providesinstructions to the user to begin defining or outlining a region withinthe image. For example, the user may wish to define an object as theregion of the image containing the sunglasses worn by the man in theimage. To do this, the user may use a computer mouse or mouse pad tooutline the region defining the object. For example, the user may selecta starting point by clicking the mouse on a first (x,y) coordinate pointin the image on the edge of the sunglasses. As the user then moves thecursor over the image, the screen may display a relatively thick and/orcontrasting color line from the starting point selected to the currentposition of the cursor on the screen. Each subsequent click of the mousecreates a new point and the relatively thick and/or contrasting colorconnection line is maintained between each point selected. In this way,a user may continue outlining the region within the image defining theobject until the user double clicks the mouse or otherwise indicatesthat the outline is complete. With this method, the (x,y) coordinatecursor position at the moment of each mouse click by the user can bestored to generate an ordered set of numerically defined locationswithin the image, and these numerical values can be parameters thatdefine the “object” created by the user. In another embodiment, the usermay click and hold the mouse down in order to draw the outline similarto a pen function. In this embodiment, the object creation software mayperiodically sample the (x,y) cursor position to generate a sequence ofcoordinate points along the outline as the user draws it to generate aset of numerical values that define the object. With a mouse, andespecially with a touchscreen, a region could be filled in by the userinstead of outlined and afterward a series of points along the edge ofthe filled in region could be generated by the object creation softwareto define the object. This process could also be assisted if imageprocessing algorithms are included in the object creation software suchas edge detection and space filling algorithms. These could be used tosuggest regions of the image to the user, and/or smooth an outline orfilled in area created by hand. As an alternative to defining the objectwith a series of coordinate points along the edge of a region, a list ofall the pixel locations within the outline may be generated and stored.In a simple embodiment, a single point in the image at a desiredlocation such as on or near the sunglasses may be selected by the user.In any of these cases, a series of numerical values can be generated andstored by the object creation software to define the object.

During this process, it may be desirable for a user to be able tomanipulate the image 215 (e.g., zoom, clear edits, or undo an action) inorder to better define the region within the image. For example, asshown in FIG. 4, the pop-up window contains buttons and key commands(e.g., clear, undo point, and zoom) to aid the user in outlining animage region. FIG. 5 is an exemplary screen display of a zoomed-inportion of the image 215 of FIG. 4. In FIG. 5, the user has zoomed-in onthe portion of the image containing the sunglasses on the man. FIG. 6 isan exemplary screen display of the image 215 with the outlined region ofthe image 215 highlighted by altering image pixel color inside the drawnborder for user inspection and approval. The border of the highlightedregion defines the area of the selected region 615 on the image 215.This highlighting may occur automatically when the user double clicksthe mouse indicating they have completed defining the object 615.

The next step may comprise associating the object 615 defined within theimage 215 with a network resource on another node of the network. FIG. 7is an exemplary screen display after the user has selected the “Next”button 318 to continue to the next screen. In FIG. 7, the screenprovides instructions 825 for the user to associate the object 615defined in the previous screen with a physical item. As shown in FIG. 7,a user may select a category for the item from a drop-down menu 836and/or type in a keyword in the keyword search box 837 for a desireditem in order to aid the search. When the user clicks the “Go” button orhits the “Enter” key, the browser extension performs a search anddisplays the results.

FIG. 8 is an exemplary screen display illustrating the search resultsfrom the search entered in FIG. 7. As shown in FIG. 7, the user hasselected the category “Apparel” from the drop-down menu 836 and typed inthe keyword “sunglasses” in the keyword search box 837. The searchresults returned based on the category and keywords selected maycomprise a list of items and/or images of the items with a briefdescription of each item returned. In FIG. 8, a variety of images ofdifferent sunglasses (e.g., items 930 a-930 d) along with briefdescriptions of each of the sunglasses are depicted. In someembodiments, the user may scroll through the search results in order tofind a desired item to associate with the object 615 defined previously.In some embodiments, the browser extension may contain image processingsoftware that can analyze the shape of the object 615, identify itemsthat the shape likely corresponds to, and automatically perform a searchfor options to present to the user without a manual search.

To perform this search, the object creation software 103 may send thesearch query to the object server node 125. After receiving the searchquery from the object creation node 102, the object server node 125 maysearch a database it maintains locally, or it may perform a search ofother web sites directly scraped or via external APIs to facilitatesearching outside of the object server node 125. Alternatively, theobject creation software 103 may be configured to leverage searchengines operated separately from the object server node 125. The resultsof the search are sent from the object server node 125 to the objectcreation node 102 (or possibly retrieved by the object creation nodefrom other nodes of the network) and displayed to the user by the objectcreation software. If the user is unable to find a desired item toassociate with the object 615 from the search results, the user mayretype a new search or the object creation software may have an optionfor the user to enter in more search criteria. For example, as shown inFIG. 8, a user may select the link entitled “more search options” inorder to enter in more description for the search. If the user finds thecorrect item that the user wishes to associate with the object 615 thatwas defined, the user may select the item by clicking on the image ofthe item from the search results.

FIG. 10 is an exemplary screen display of a user selecting an item fromthe list of search results which in this case match the object 615defined at the object creation node 102 and depicted in FIG. 6. Asshown, the item 930 c selected contains a black border surrounding theimage after the selection, however other means of highlighting or visualcues that indicate that the item 930 c has been selected from the searchresults are possible. In some embodiments, the object creation softwaremay display a page where a user can confirm that the item selected fromthe search results should be associated with the object 615 defined inthe image. FIG. 10 is an exemplary screen display where a user canconfirm that the item 930 c selected should be associated with theobject 615 highlighted by the user on the image 215. As shown, the usermay select the “Finish” button 1150 on the pop-up window 325 to completethe process.

During and/or after the above described process, the object creationnode 102 transmits one or more numerical values defining the object(e.g. the ordered sequence of (x.y) coordinates created when definingthe object), the network resource identifier (e.g. URL) of the image 215associated with the object 615 from the HTML code reference in theoriginal retrieved web page, and the identity of the item associatedwith the object, to the object server node 125. The object creation node102 may also send the height and width of the image as rendered in theweb page containing the image downloaded by the object creation node(which may be different from the height and width of the image as storedat the network resource identifier of the image). The object server node125 may retrieve or generate a network resource identifier for a networkresource on an object destination node 105 that is related to the itemselected. As another alternative, the object creation node 102 may beused directly to specify a desired network resource identifier on anobject destination node 105 to associate with the object, and send it tothe object server node 125 as part of this process.

This network resource identifier, whether retrieved or generated by theobject server node 125 or the object creation node 102, is referred toherein as the object destination. When the information is received fromthe object creation node 102, the object server node 125 then createsentries in the object/destination database 130 associating the networkresource identifier for the image, the numerical object definition, andthe object destination.

As object creation nodes 102 are used to define objects in images, theobject server node 125 continues to populate the object/destinationdatabase 130. This process may involve determining whether the imagethat an object creation node 102 has defined an object in already existsin the object/destination database 130 in association with anotherobject. To facilitate this searching process, the object server node 125may create fixed length hashes (e.g. MD5, SHA-256, and the like) ofimage data and/or image location data and store the hashes in thedatabase 130. For example, when the object server node 125 receives anetwork resource identifier of an image which has been used to create anobject with an object creation node 102, the object server node 125 maycreate a hash of the received network resource identifier and search thedatabase 130 for the same hash. If a matching hash isn't found, theobject server node 125 may then use the received network resourceidentifier for the image to access the image data itself over thenetwork 101 and retrieve the image pixel data and associated header datafrom that location. From the image pixel data, the object server node125 may calculate an image hash, and search the database again for thesame image hash. If it isn't found, the object server node 125 maycreate a new row in an image information database table, where each rowmay include an image identification number, the image hash, the imagenetwork resource identifier hash, and image size information in pixelheight and width obtained from the retrieved image header data. Adate/time stamp may also be in the row, as well as the unhashed imagenetwork resource identifier. It will be appreciated that creating hashesof the image data is not the only way to compare images to see if theyare the same. A variety of image similarity algorithms are availablethat characterize image content in manner that facilitates comparisonsand decisions about whether two images can be considered the same ornot. Any such algorithm could be used as an alternative to the hashesdescribed herein.

The object server node 125 may also include in the object/destinationdatabase 130 an object information database table. When the objectserver node 125 receives the numerical information defining the objectwithin the image and receives or generates the object destination, a newrow in this table may be created, where each row may include an objectidentification number, the hash of the image data the object is definedin, the object destination, and the numerical (x,y) coordinateinformation defining the shape and position of the object within theimage.

Once these entries have been stored in the database 130 of the objectserver node 125, object navigation nodes 106 running object navigationsoftware 107 may interact with the object server node 125 to view andinteract with the object 615 when they access a web page that containsthe image 215, and to use the object 615 to access the network resourcestored at the object destination. User interaction when performing thesefunction is illustrated in FIGS. 11-13.

FIG. 11 is an exemplary screen display of the web page of FIG. 2, whichhas now been retrieved and displayed by the browser at the objectnavigation node 106. When the browser at the object navigation node 106retrieved this web page, advantageously when it retrieves any web page,not just this one, the object navigation software parses the web pagesyntax (searching for img tags in the HTML code for example) and findsthe network resource identifiers for images to be displayed by thebrowser when executing the web page. The object navigation node 106sends these network resource identifiers to the object server node 125.The object navigation node 106 may also send the height and width of theimage as rendered with the web page downloaded by the object navigationnode 106, which may be different from the image as stored at the networkresource identifier of the image, and may also be different from theheight and width of the image used at the object creation node 102 whendefining the object. The object server node 125 searches theobject/destination database 130 for image network resource identifiers(or hashes thereof) matching the image network resource identifiers (orhashes thereof) received from the object navigation node 106. In thecase where the HTML code of the web page loaded by the object navigationnode contains the URL for the image 215, a match will be found, and theobject server node 125 will retrieve the numerical values defining theobject with data defining, at least in part, browser functionality thatis to be invoked during user interaction with the object. This data mayinclude a network resource identifier that the object navigationsoftware at the object navigation node 106 may use to create a link andlink indicator that is associated with the object. This data may alsoindicate that when the user positions the cursor over image pixelscorresponding to the object, the pixels corresponding to the objectchange color, are outlined, or some other visual cue indicating theobject be presented, although this functionality may be pre-programmedinto the object navigation software to be used every time objectdefinition data is received from the object server node 125 rather thansent with the object definition data. If the height and/or width of theimage as displayed on the object navigation node 106 is different fromthe height and/or width of the image that was used to define thenumerical object coordinates at the object creation node 102, the objectserver node 125 can scale the numerical object coordinates in thedatabase appropriately using the information regarding the sizes of theimage as rendered on the object creation node 102 and the objectnavigation node 106.

FIG. 12 is an exemplary screen display of the web page depicted in FIG.11 when the user has either hovered the cursor over the object 615 orpressed a designated key or key combination which highlights the object615 within the image 215. As shown in FIG. 12, the user is given avisual cue as a link indicator which indicates that the user is able tointeract with the object 615 depicted. In this embodiment, the user mayhave hovered over the sunglasses depicted in the image 215 and thesunglasses have been highlighted by changing color which indicates thepresence of the object 615 within the image 215. If the user clicks onthe highlighted object 615 (e.g., the sunglasses) or otherwise selectsthe object 615 (e.g., presses “Enter”) the browser will execute the linkcontaining the network resource identifier that the object server node125 sent to the object navigation node 106 with the numerical objectdefinition data, and the browser will access the network resourceassociated with the network resource identifier in that link. Thenetwork resource identifier sent by the object server node 125 to theobject navigation node 106 and used in this link may direct the browserdirectly to the object destination, but for tracking purposes, it isadvantageous for this network resource identifier to direct the browserto a network resource provided as part of a navigation controller 132 atthe object server node 125. In this case, when accessed by the objectnavigation node 106 by executing the link, this network resource at theobject server node 125 may receive and store an identification of theobject clicked on, such as the object identification number, in anobject interaction log 134. The object identification number may be partof the link network resource identifier previously sent to the objectnavigation node 106, and which is returned in the access requestreceived by the object server node 125 when the link is executed at theobject navigation node 106. In response to the access request from theobject navigation node 106, this network resource at the object servernode 125 may further send a redirection response to the objectnavigation node 106 which contains the object destination retrieved fromthe database 130 that corresponds to the object clicked on as definedwith the object creation node 102. Upon receiving the redirectionresponse, the object navigation node 106 issues an access request forthe network resource identified by the object destination in theredirection response.

FIG. 13 is an exemplary screen display of a web page that the user maybe directed to with the redirection response from object server node 125after the user has clicked on the object 615 in FIG. 12 and the abovedescribed process has been carried out.

FIG. 1B illustrates system sharing many similarities to that describedabove with reference to FIG. 1A, but in this embodiment, the objectserver node 125 also includes a web server 136. In this embodiment, theobject server node 125 may host a social media web site such as Facebookor Pinterest for example. A user of such a social media web site at anobject creation node 102 may create objects in images on their personalpages as described above. A user of the same social media web site at anobject navigation node 106 may retrieve this page from the web server136. The web server 136 can communicate with the navigation controller132 to receive and incorporate objects and associated links defined bythe object creation node 102 into the web pages served to the objectnavigation node 106 before or during the process of serving the pages tothe object navigation node 106. This eliminates the need for a browserextension at the object navigation node 106 that parses retrieved webpages (e.g. from other web servers such as web servers 104 and/or 108)for image network resource identifiers and sends them to the objectserver node 125 for obtaining objects and object destinations. In thisembodiment, of course, only web pages retrieved from web server 136 willincorporate objects in their images at the object navigation node 106.

FIG. 14 is a flowchart illustrating the functions that may be performedby the systems of FIGS. 1A and 1B. In block 1450, an object and anobject destination are defined at a first node of a network. In block1460, data defining the object and the object destination is sent to asecond, different node of the network and the data defining the objectis stored at the second node in association with the object destination.In block 1470, the data defining the object and the associated objectdestination are sent to a third, different node of the network. In block1480, the third, different node uses the object destination to access anetwork resource.

FIG. 15A is an exemplary flowchart of a method 1500 of interactionbetween the object server node 125 and an object navigation node 106. Inblock 1501 the method begins when the browser of the object navigationnode retrieves a web page. In block 1502, the object navigation nodeparses the web page syntax to see if the web page contains any images.If no, at block 1504, no call is made to the server. If the web pagedoes contain images, in block 1506 the object navigation node 106 maycheck to see if the images satisfy specified requirements. For example,the object navigation node 106 may check the web page syntax todetermine if the size of the image, the type of image, or other imagerequirements are satisfied. If not, for example if all displayed imagesare too small to adequately contain objects, then the method proceeds toblock 1504 and no call is made to the server. If the image does satisfythe requirements, then in block 1508, the object navigation node sendsimage identifying data to the object server node 125. In someembodiments, the image identifying data are or include the image URLs(and possibly also the rendered image size in the retrieved web page) asdiscussed above, but it is possible that other identifying data could beused, for example, data derived from the image data itself. In block1510, objects pertaining to the images are identified by the server. Inblock 1512, a response is received from the server regarding anyidentified objects within any of the images. In block 1514, the methodcontinues with the object navigation node processing the response todetermine if any images of the web page contained any identifiedobjects. If no, in block 1516 no further action is taken. If any of theimages did contain any identified objects, then in block 1518 the objectnavigation software enables instructions for browser functionality to beimplemented when identified objects are interacted with. In block 1520,after the instructions are generated, the images are ready for userinteraction.

FIG. 15B is an exemplary flowchart of acts that may be performed withinthe block 1510 of FIG. 15A when the object server node 125 receivesimage locations (e.g. URLs) from the object navigation node 106 andchecks for associated objects. In block 1551, after image identifyingdata is sent to the server and a request is made to the server to returnobjects related to one or more images (e.g., block 1508), the objectserver node 125 may utilize a hashing algorithm to derive a hash fromthe image location. In block 1552, the object server node 125 thencompares the image location hash to image location hashes stored in theobject server node 125. In some embodiments, the table of image locationhashes are stored in a database of the object server node 125 (e.g.,object/destination database 130 of FIG. 1A).

In block 1554, the object server node 125 then determines whether thereis a match between the image location hash value (e.g., location hash)to an image location hash value (e.g., location hash) in the table. Ifthere is a match, then the object server node 125 proceeds to block 1566to retrieve all objects associated with the image at this location. Thismay be done by retrieving the image hash stored in association with thematching location in the above mentioned image information databasetable, and searching the above mentioned object information databasetable for all object entries associated with the same image hash. Thishelps ensure that complete object identification is made in the eventthat the same image is located at more than one location, and differentobject creation nodes 102 create objects in the same image but that wereretrieved from different locations by the object creation nodes 102. Ifthere is no match with the received locations (or hashes thereof), thenin block 1556 the object server node 125 downloads the image using thelocation received from the object navigation node 106 and hashes thepixel data of the image. In block 1558, the image hash is comparedagainst a table of image hashes (e.g., the image information databasetable). At block 1560, the object server node 125 determines whetherthere is a match between the image hash and an image hash value in thetable of image hashes. If there is not a match, then in block 1562, noresults (e.g., objects) are sent to the user for this image. If there isa match, then in block 1564, the image location is matched to the sameimage hash, for example, by creating new entries in the imageinformation database table associating the received new location withthe image hash at that location. In block 1566, the server retrieves allobjects associated with that image, by, for example, searching theobject information database table for all objects associated with thatimage hash. After the object server node 125 retrieves all the objects,at block 1570, the object server node 125 sends the objects and anyassociated instructions to the object navigation node 106.

In some embodiments, the object server node 125 can periodically curatethe object/destination database 130. For example, if a date/time stampis associated with an image hash and URL where that image is stored,once a defined length of time passes, the object server node 125 canaccess the stored URL, re-hash the image stored there, and compare thatnew hash to the existing stored hash. If there is a match, the sameimage is still stored at the same location, and the date/time stamp canbe updated according to the time the image location was checked for anychange. If the new hash does not match, that URL can be removed from thedatabase as stale. It will also be appreciated that a wide variety oftypes of database organizations can be used for the object/destinationdatabase to store and retrieve objects associated with images.

FIG. 16A is a flowchart of an exemplary method 1600 of interacting withan object within an image of a web page. The method begins at block 1602when a user accesses a web page with an image that contains definedobjects. At block 1604, the object navigation software determineswhether the user has hovered over a defined object with a mouse cursor.In some embodiments, the object navigation software 107 may receiveobject definitions from a server (e.g., object server node 125) whichcontain instructions of how the objects should interact with the user.If the user has not hovered over a defined object, the method proceedsto block 1606 where the object navigation software determines whether a“highlight all” key or key combination is pressed. Referring back toblock 1604, if a user has hovered over an object, then in block 1608 theobject navigation software displays a visual cue for the object. Forexample, the objects may appear highlighted on the screen, a pop-upwindow may open on the screen, or any other visual cue may appear toindicate to the user that an object (e.g., object 615) is defined withinthe image (e.g., image 215). Returning to block 1606, if no “highlightall” key or key combination is pressed, the method returns to block 1602and waits for the user to access a new page with images containingdefined objects. If the “highlight all” key or key combination ispressed, the method proceeds to block 1610 and the object navigationsoftware displays a visual cue for all objects within the images on theweb page. As described with respect to block 1608, the visual cue maycomprise highlighted objects, a pop-up window, or other visual cue. Inblock 1612, the browser extension determines whether the user hasinteracted with the visual cue. In some embodiments, the interaction maycomprise clicking on the highlighted object or pressing a key on thekeyboard. If the user has interacted with the visual cue, then in block1614 the user accesses the network resource associated with the object.

FIG. 16B is a flowchart of the actions that can be performed withinblock 1614 of FIG. 16A. At block 1652, a user clicks on an object on aweb page. At block 1654, the browser is directed to the object servernode 125. At block 1656, the object server node 125 logs which objectwas clicked on. The object server node 125 logs this information tofacilitate crediting the interaction of the object to the objectcreator. At block 1658, the object server node 125 sends a redirectresponse to the user's browser to a destination network resourceidentifier. At block 1660, the user's browser accesses the destinationnetwork resource.

The above described systems are useful because they allow an Internetuser to insert links within images, and to define at least a location ofthe link indicator associated with the link. This may be done withoutcontrolling the HTML code or any other part of the syntax that definesthe web page itself. In some cases, the creator of the link need nothave any relationship at all with the creator of the original web page.In some cases, links can be associated with images without reference toany specific web page that loads the image. Such a link can appear whenany web page that loads the image is retrieved.

One especially advantageous use of the above system relates to onlineretail affiliate programs. Online retailers (e.g., Amazon.com,Walmart.com, Target.com, etc.) may allow third-party website operatorsto advertise and offer for sale on web pages of their website some orall of the goods sold by the online retailer as an “affiliate” of theonline retailer. Web pages of a third-party website where a product isdescribed, commented on, advertised, or the like will contain links thataccess web pages maintained by the online retailer from which theproducts can be purchased. When a consumer navigates their browser to aweb page of the third-party website, sees the advertisement,description, commentary, or the like and decides to purchase thatproduct, they utilize the link provided with that page, which willdirect their browser to the web page maintained by the retailer fromwhich the product can be purchased and/or which contains a link or linksto the order and fulfillment pages of the retailer website so that theconsumer can pay the online retailer for the product and have theproduct delivered to them by the online retailer. As an affiliate of theonline retailer, the owner of the third-party website from which theconsumer navigated to the online retailer website to purchase theproduct receives a commission on the sale from the online retailer.

In order to track which affiliate was the source of a consumernavigation to the online retailer website that resulted in a purchasefrom the online retailer, each affiliate uses particular URLs in thelink syntax on their web pages in association with their advertisements,descriptions, commentaries, and the like. These URLs, which may bereferred to as retail affiliate URLs, may include an affiliateidentifier or one of a set of affiliate identifiers (as all or part ofthe URL query string for example) that are different for each affiliate,which the online retailer logs when a consumer retrieves the onlineretailer web page after clicking on the third-party link that includesthe affiliate identifier within it. The online retailer ties thisaffiliate identifier in the URL received when the web page was requestedto the sale transaction made with the consumer, allowing the onlineretailer to track to whom any commission due should be sent. Thisarrangement is profitable to both the online retailer and thethird-party website owner. The online retailer increases sales byleveraging third-party advertising, and the third-party website ownerreceives payment from the online retailer for business it drives to theonline retailer.

The above systems and methods can expand the reach of these affiliateprograms to provide effective affiliate status to third-parties that arenot themselves affiliates of the online retailer. In this use of theabove systems and methods, the object server node 125 may be operated byan affiliate of an online retailer, the item selected by the objectcreation node 102 may be a product sold by this online retailer, and theobject destination may be a retail affiliate URL that accesses a networkresource of the online retailer where the product can be purchased (suchas is shown in FIG. 13, for example. Referring again to FIG. 13, if theoperator of the object navigation node 106 purchases the item 930 c(e.g., sunglasses) from the online retailer via the web page of FIG. 13,the operator of the object creation node 102 that created the object 615may receive a commission or fee as a result of the purchase. When theURL in the redirection response is a retail affiliate URL containing theaffiliate identifier of the operator of the object server node 125, theonline retailer will pay a commission on the sale of the sunglasses tothe operator of the object server node 125. Part of this commission canbe paid to the operator of the object creation node 102 that created theobject 615. The identity of the object creation node 102 that createdthe object can be obtained since the object server node 125 logged theidentity of the object 615 clicked when the object navigation nodeexecuted the link back to the network resource on the object server node125 associated with the object 615, and can therefore identify theoperator of the object creation node 102 responsible for that sale. Insome cases, the operator of the object server node 125 may receivereward points, cash back, gifts, offers, discounts, etc. instead of, orin addition to, the commission or fee from the affiliate program. Thecreator of the browser extension or the website owner may then also passalong some of the benefits (e.g., reward points or gifts) to theappropriate operator of an object creation node 102.

The above systems and methods can also be enhanced to include multiplesub-links associated with a highlighted object. A “sub-link” may bedefined as a link or link indicator associated with a network resourceof an item that is associated with the main object within the image. Asdescribed above, the main object may form a highlighted area within theimage. An example of objects that could have sub-links associated withthem include a highlighted region over a lasagna, where the sub-linksare some or all of the cooking ingredients used to make the lasagna.Another example may include a highlighted region over a car engine,where the sub-links form some or all of the parts composing the engine.Another example may include a highlighted region of a suit, where thesub-links could be the shirt, tie, cufflinks, jacket, pants, belt,shoes, etc. In the example of FIGS. 2-13 above, the object 615(sunglasses) form the highlighted area and may include sub-links of theframe and the lens.

FIG. 17A is an exemplary screen display of a web page retrieved by theobject creation node 102 that contains several images, although only oneimage 1700 is illustrated in FIG. 17A. As described with respect toFIGS. 2-13 above, once the display for the web page is assembled by thebrowser and presented to the user, a user may access the functionalityof the object creation software 103.

FIG. 17B is an exemplary screen display of the web page depicted in FIG.17A when the user has either hovered the cursor over an object 1715 orpressed a designated key or key combination which highlights the object1715 within the image 1700. As described above, a user may define theobject 1715 using the object creation software 103. In some embodiments,the user may also define sub-links associated with the object. In someaspects, the object creation software 103 may prompt the user whether ornot sub-links should be applied to the object 1715 during the objectdefinition process. In other aspects, the user may indicate using theobject creation software 103 that it wishes to add sub-links to theobject 1715. Each of the sub-links may also be associated with an itemand a network resource identifier of a web page associated with theitem. The web page may contain information regarding the item or may bea web page of an online retailer where the item may be purchased. Asshown in FIG. 17B, the object 1715 defines a rectangular region (i.e.,the painting) within the image 1700. The object 1715 may includemultiple sub-links associated with the object 1715. For example, thesub-links may include the paint and paint color used to make thepainting, the board the painting is on, or a brush used to paint thepainting.

FIG. 17C is an exemplary screen display of the web page depicted in FIG.17B when the user has interacted with the object 1715 comprisingsub-links 1720-1723 within the image 1700. As shown, in FIG. 17C, theuser interacts with the object 1715 (e.g., clicks on the object 1715 orhovers over the object 1715 for a specific time duration) and thesub-links associated with the object 1715 are displayed to the user. Thesub-links may be displayed in a variety of locations and formats. Forexample, the sub-links may be displayed in a text list format to oneside of the web page. In some aspects, the sub-links may be displayed asone or more thumbnail images on the web page. In other aspects, thesub-links may be displayed in a separate pop-up window, a combination ofany of the above, or via any other visual cue to the user. As shown inFIG. 17C, the object 1715 includes four sub-links 1720-1723 that aredisplayed as pop-up thumbnail images of paint colors associated with theobject 1715. Additionally, the sub-links 1720-23 are located and spacedsubstantially evenly around the top half of the object 1715. Similar tothe user interaction with the object 615 described above, if the userclicks on or otherwise selects one of the sub-links 1720-1723 (e.g.,paint colors) the browser will execute the sub-link containing a networkresource identifier that the object server node 125 sent to the objectnavigation node 106 with numerical object definition data. The browserwill then access the network resource associated with the networkresource identifier in that sub-link. The interaction of the objectnavigation node 106, object server node 125, WAN 101, and objectdestination node 105 described above with respect to the interactionwith object 615 may also be applied to the interaction with thesub-links 1720-1723.

FIG. 18 is an exemplary screen display of a web page that the user maybe directed to with the redirection response from object server node 125after the user has clicked on one of the sub-links 1720-1723 in FIG. 17Cand the above described process has been carried out.

FIG. 19 is a flowchart of an exemplary method 1900 of interacting withan object containing sub-links within an image of a web page. The methodbegins after a user accesses a web page with an image that containsdefined objects. At block 1902 the object navigation software 107determines whether the user has hovered over a defined object with amouse cursor. In some embodiments, the object navigation software 107may receive object definitions from a server (e.g., object server node125) which contain instructions of how the objects should interact withthe user. As noted above, the object navigation software 107 may containinstructions to display a visual cue (e.g., a highlighted region) to theuser that the object exists when the user hovers over the defined objector otherwise selects the defined object. If the user has hovered over adefined object, the method proceeds to block 1904 where the objectnavigation software 107 determines whether the user has interacted withthe object. In some embodiments, the user may interact with the objectby clicking on the object or visual cue with an input device, pressing“Enter,” continuing to hover over the object for a time period, orotherwise selecting the object or visual cue.

At block 1906 the object navigation software 107 determines whetherthere are more than one links associated with the object. For example,the object navigation software 107 determines whether the object 1715contains one link (associated with an item, e.g. the painting) ormultiple links (e.g., sub-links associated with multiple items (e.g.,paint colors) and affiliated to the main object 1715, e.g., thepainting). If there is only one link associated with the defined object,at block 1908, the object navigation node 106 takes the user's browserto the network resource referred to by the link associated with theobject. If more than one link is associated with the object, the methodproceeds to block 1910 and the object navigation software 107 displaysall sub-links to the user on the web page. As described with respect toblock FIG. 17C, the object navigation software 107 may display thesub-links to the user by highlighting the sub-links, a pop-up window, orby another visual cue. At block 1912, the object navigation software 107determines whether the user has interacted with the sub-link. In someembodiments, the interaction may comprise clicking on the displayedsub-link or pressing a key on the keyboard. If the user has interactedwith the sub-link, then at block 1914 the object navigation node 106takes the user's browser to the network resource referred to by thesub-link.

The above systems and methods can also be applied to an application on amobile or portable device. For example, the object creation node 102 maybe an application on the mobile device. Additionally, the objectnavigation node 106 may be an application on the mobile device or abrowser of the mobile device. As describe above, a user may define anobject and/or sub-links within an image of a web page or applicationpage. After the object and/or sub-links are defined, a user of theobject navigation node 106 on a mobile device may view an image that hasdefined objects and/or sub-links within the image. Similar to theembodiments described above, the object navigation software 107 (e.g.,mobile application) may display a visual cue of the object and/orsub-links. In some aspects, the object navigation software 107 mayautomatically display the visual cue of the object and/or sub-links asthey become visible in the mobile device display. In other aspects, theobject navigation software 107 may display the visual cue of the objectand/or sub-links within the image after the user interacts with theimage, object, and/or sub-links. After the user interacts with thevisual cue of the object and/or sub-link, the object navigation node 106directs the user's mobile browser or application to the network resourcereferred to by the object or sub-link.

A person/one having ordinary skill in the art would understand thatinformation and signals can be represented using any of a variety ofdifferent technologies and techniques. For example, data, instructions,commands, information, signals, bits, symbols, and chips that can bereferenced throughout the above description can be represented byvoltages, currents, electromagnetic waves, magnetic fields or particles,optical fields or particles, or any combination thereof.

Various modifications to the implementations described in thisdisclosure can be readily apparent to those skilled in the art, and thegeneric principles defined herein can be applied to otherimplementations without departing from the spirit or scope of thisdisclosure. Thus, the disclosure is not intended to be limited to theimplementations shown herein, but is to be accorded the widest scopeconsistent with the claims, the principles and the novel featuresdisclosed herein. The word “exemplary” is used exclusively herein tomean “serving as an example, instance, or illustration.” Anyimplementation described herein as “exemplary” is not necessarily to beconstrued as preferred or advantageous over other implementations.

Certain features that are described in this specification in the contextof separate implementations also can be implemented in combination in asingle implementation. Conversely, various features that are describedin the context of a single implementation also can be implemented inmultiple implementations separately or in any suitable sub-combination.Moreover, although features can be described above as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination can in some cases be excised from thecombination, and the claimed combination can be directed to asub-combination or variation of a sub-combination.

The various operations of methods described above may be performed byany suitable means capable of performing the operations, such as varioushardware and/or software component(s), circuits, and/or module(s).Generally, any operations illustrated in the figures may be performed bycorresponding functional means capable of performing the operations.

The various illustrative logical blocks, modules and circuits describedin connection with the present disclosure may be implemented orperformed with a general purpose processor, a digital signal processor(DSP), an application specific integrated circuit (ASIC), a fieldprogrammable gate array signal (FPGA) or other programmable logic device(PLD), discrete gate or transistor logic, discrete hardware componentsor any combination thereof designed to perform the functions describedherein. A general purpose processor may be a microprocessor, but in thealternative, the processor may be any commercially available processor,controller, microcontroller or state machine. A processor may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration.

In one or more aspects, the functions described may be implemented inhardware, software, firmware, or any combination thereof. If implementedin software, the functions may be stored on or transmitted over as oneor more instructions or code on a computer-readable medium.Computer-readable media includes both computer storage media andcommunication media including any medium that facilitates transfer of acomputer program from one place to another. A storage media may be anyavailable media that can be accessed by a computer. By way of example,and not limitation, such computer-readable media can comprise RAM, ROM,EEPROM, CD-ROM or other optical disk storage, magnetic disk storage orother magnetic storage devices, or any other medium that can be used tocarry or store desired program code in the form of instructions or datastructures and that can be accessed by a computer. Also, any connectionis properly termed a computer-readable medium. For example, if thesoftware is transmitted from a website, server, or other remote sourceusing a coaxial cable, fiber optic cable, twisted pair, digitalsubscriber line (DSL), or wireless technologies such as infrared, radio,and microwave, then the coaxial cable, fiber optic cable, twisted pair,DSL, or wireless technologies such as infrared, radio, and microwave areincluded in the definition of medium. Disk and disc, as used herein,includes compact disc (CD), laser disc, optical disc, digital versatiledisc (DVD), floppy disk and Blu-ray disc where disks usually reproducedata magnetically, while discs reproduce data optically with lasers.Thus, in some aspects computer readable medium may comprisenon-transitory computer readable medium (e.g., tangible media). Inaddition, in some aspects computer readable medium may comprisetransitory computer readable medium (e.g., a signal). Combinations ofthe above should also be included within the scope of computer-readablemedia.

The methods disclosed herein comprise one or more steps or actions forachieving the described method. The method steps and/or actions may beinterchanged with one another without departing from the scope of theclaims. In other words, unless a specific order of steps or actions isspecified, the order and/or use of specific steps and/or actions may bemodified without departing from the scope of the claims.

Further, it should be appreciated that modules and/or other appropriatemeans for performing the methods and techniques described herein can bedownloaded and/or otherwise obtained by a user terminal and/or basestation as applicable. For example, such a device can be coupled to aserver to facilitate the transfer of means for performing the methodsdescribed herein. Alternatively, various methods described herein can beprovided via storage means (e.g., RAM, ROM, a physical storage mediumsuch as a compact disc (CD) or floppy disk, etc.), such that a userterminal and/or base station can obtain the various methods uponcoupling or providing the storage means to the device. Moreover, anyother suitable technique for providing the methods and techniquesdescribed herein to a device can be utilized.

While the foregoing is directed to aspects of the present disclosure,other and further aspects of the disclosure may be devised withoutdeparting from the basic scope thereof, and the scope thereof isdetermined by the claims that follow.

What is claimed is:
 1. A server in communication over a network with atleast a first and a second client, the server being configured forproviding the first client with control over at least some aspects ofnetwork resource navigation behavior of the second client, the servercomprising: a database having stored therein: data identifying at leasta first image; data defining a region of the first image, wherein theregion of the first image is selected at the first client and isreceived by the server from the first client; and a network resourceidentifier stored in association with the data defining the region ofthe first image; a navigation controller configured to control thenavigation behavior of the second client using the data defining theregion of the first image and the associated network resourceidentifier, wherein, when the second client accesses the first imagefrom a node of the computer network, the navigation controller isconfigured to: send data defining the region of the first image to thesecond client; and send the network resource identifier that is storedin the database in association with the data defining the region of thefirst image to the second client.
 2. The server of claim 1, wherein thedata identifying the first image comprises one or more values derivedfrom the image data of the first image.
 3. The server of claim 1,wherein the data identifying the first image comprises a networkresource identifier or a hash of a network resource identifier at whichthe first image is accessible to nodes of the computer network.
 4. Theserver of claim 1, wherein the navigation controller is configured to:obtain data identifying the first image when the second client accessesthe first image from a node of the computer network; retrieve from thedatabase data defining the region of the first image using the obtaineddata identifying the first image; and send the associated networkresource identifier to the second client.
 5. The server of claim 4,wherein the navigation controller is configured to: obtain an image URLfor the first image from the second client when the second clientaccesses the first image from a node of the computer network; search thedatabase for a matching image URL for the first image; retrieve the datadefining the region of the first image defined by the first client; sendthe data defining the region of the first image to the second client;and send a URL of a network resource hosted by the server to the secondclient.
 6. The server of claim 5, wherein the network resource hosted bythe server is configured to: record at least some information containedin requests by the second client to access the network resource hostedby the server; and send the network resource identifier that is storedin the database in association with the data defining the region of thefirst image to the second client.
 7. The server of claim 6, wherein thenetwork resource identifier that is stored in the database inassociation with the data defining the region of the first image is aURL of a web page stored by a third node of the network.
 8. The serverof claim 7, wherein the navigation controller is configured to send theURL of the web page as part of a redirection response sent in responseto a request from the second client to access the network resourcehosted by the server.
 9. The server of claim 1, further comprising adatabase storing network resource information.
 10. The server of claim9, further comprising a search engine configured to search the databaseof network resource information in response to receiving a searchrequest from the first client.
 11. In a computer network comprising afirst client, a second client, and a server, the first client, secondclient, and the server being in communication over the computer network,a method for defining image based navigation behavior for the secondclient at the first client, the method comprising: downloading one ormore images to the first client from one or more nodes of the computernetwork; selecting a first image from the one or more downloaded images;selecting a region of the first image; selecting a network resource; andsending, from the first client to the server, data defining the selectedregion of the first image and data defining the selected networkresource.
 12. The method of claim 11, wherein selecting a region of thefirst image comprises selecting one or more (x,y) coordinates within thefirst image.
 13. The method of claim 11, wherein selecting a networkresource comprises searching a database at the server.
 14. The method ofclaim 11, wherein selecting a network resource comprises: selecting afirst network resource associated with the selected region of the firstimage; and selecting a second network resource associated with theselected region of the first image.
 15. In a computer network comprisinga first client, a second client, and a server, the first client, secondclient, and the server being in communication over the computer network,a method for executing image based navigation behavior at the secondclient as defined at the first client, the method comprising:downloading one or more images to the second client from one or morenodes of the computer network; sending, from the second client to theserver, data identifying at least a first image of the one or moreimages; receiving, from the server, data defining a region of the firstimage that was previously selected by the first client; receiving, fromthe server, a network resource identifier; generating a link using thedata defining a region of the first image that was previously selectedby the first client and the network resource identifier; and accessingthe network resource associated with the network resource identifier byinteracting with a link identifier associated with the link.
 16. Themethod of claim 15 comprising sending, from the second client to theserver, a URL where the first image is accessible to nodes of thenetwork.
 17. The method of claim 15 comprising receiving, from theserver, a URL of a network resource hosted by the server.
 18. The methodof claim 17, comprising receiving, from the server, a redirectionresponse from the network resource hosted by the server.
 19. The methodof claim 18, wherein the redirection response comprises a URL of anetwork resource stored at a third node of the network.
 20. A system forcontrolling navigation in a computer network, comprising: an objectcreation node configured to generate definitions of image regions; anobject navigation node configured to navigate among a series of webpages; and a server configured to provide control over at least somenavigation behavior of the object navigation node in accordance withimage regions defined by the object creation node; wherein the server isconfigured to send, to the object navigation node, one or moredefinitions of image regions generated by the object creation node, andto also send, to the object navigation node, network resource locatorsthat are associated in the server with the one or more image regionsdefined by the object creation node.
 21. The system of claim 20, whereinthe object creation node and the object navigation node each comprise aweb browser and a browser extension.
 22. The system of claim 21, whereinthe browser and browser extension on the object creation node areconfigured to define image regions by: retrieving a web page containingan image; selecting the image with an input device; and selecting, withthe same or a different input device, one or more coordinates within theimage.
 23. The system of claim 22, wherein the browser and browserextension on the object creation node are also configured to send theone or more selected coordinates and an associated product selection tothe server.
 24. The system of claim 21, wherein the browser and thebrowser extension on the object navigation node are configured to:retrieve a web page containing the image; receive the one or morecoordinates within the image from the server; receive a URL from theserver; create a link associated with the URL received from the server;and create a link indicator within the image associated with the linkand the one or more coordinates.
 25. The system of claim 24, wherein thelink indicator appears on the display of the object navigation node whena cursor on the display of the object navigation node hovers over animage region defined by the object creation node.
 26. The system ofclaim 20, wherein the object navigation node is configured to: retrievea web page containing the image; receive the one or more coordinateswithin the image from the server; receive a first URL from the server;create a first link associated with the URL received from the server;create a first link indicator within the image associated with the firstlink and the one or more coordinates receive a second URL from theserver; create a second link associated with the second URL receivedfrom the server; and create a second link indicator within the imageassociated with the second link and the one or more coordinates.
 27. Thesystem of claim 26, wherein the first link indicator and the second linkindicator appear on the display of the object navigation node when acursor on the display of the object navigation node hovers over an imageregion defined by the object creation node.